package com.hjx.objectassert.model;

import com.hjx.objectassert.ObjectUtil;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Date;

/**
 * 存款
 * @author xuyiming
 *
 */
public class CreditCardTimeDeposit {
	/**
	 * 金额
	 */
	private BigDecimal balance = null;
	/**
	 * 定期类型(如:整存整取）
	 */
	private String depositType;
	/**
	 * 币种.CNY-人民币；USD-美元
	 */
	private String currencyType;
	/**
	 * 计息日期.格式yyyy-MM-dd
	 */
	private Date depositDate;
	/**
	 * 到期日期.格式yyyy-MM-dd
	 */
	private Date dueDate;
	/**
	 * 存期
	 */
	private Integer period = 0;
	/**
	 * 存期单位
	 */
	private String periodUnit = "";
	/**
	 * 利率
	 */
	private BigDecimal interest = null;

	/**
	 * 金额
	 *
	 * @return
	 */
	public BigDecimal getBalance() {
		return balance;
	}

	/**
	 * 金额
	 * 
	 * @param balance
	 */
	public void setBalance(BigDecimal balance) {
		this.balance = balance;
	}

	/**
	 * 定期类型(如:整存整取）
	 *
	 * @return
	 */
	public String getDepositType() {
		return depositType;
	}

	/**
	 * 定期类型(如:整存整取）
	 * 
	 * @param depositType
	 */
	public void setDepositType(String depositType) {
		this.depositType = depositType;
	}

	/**
	 * 币种.CNY-人民币；USD-美元
	 *
	 * @return
	 */
	public String getCurrencyType() {
		return currencyType;
	}

	/**
	 * 币种.CNY-人民币；USD-美元
	 * 
	 * @param currencyType
	 */
	public void setCurrencyType(String currencyType) {
		this.currencyType = currencyType;
	}

	/**
	 * 计息日期.格式yyyy-MM-dd
	 *
	 * @return
	 */
	public Date getDepositDate() {
		return depositDate;
	}

	/**
	 * 计息日期.格式yyyy-MM-dd
	 * 
	 * @param depositDate
	 */
	public void setDepositDate(Date depositDate) {
		this.depositDate = depositDate;
	}

	/**
	 * 到期日期.格式yyyy-MM-dd
	 *
	 * @return
	 */
	public Date getDueDate() {
		return dueDate;
	}

	/**
	 * 到期日期.格式yyyy-MM-dd
	 * 
	 * @param dueDate
	 */
	public void setDueDate(Date dueDate) {
		this.dueDate = dueDate;
	}

	/**
	 * 存期
	 *
	 * @return
	 */
	public Integer getPeriod() {
		return period;
	}

	/**
	 * 存期
	 * 
	 * @param period
	 */
	public void setPeriod(Integer period) {
		this.period = period;
	}

	/**
	 * 存期单位
	 *
	 * @return
	 */
	public String getPeriodUnit() {
		return periodUnit;
	}

	/**
	 * 存期单位
	 * 
	 * @param periodUnit
	 */
	public void setPeriodUnit(String periodUnit) {
		this.periodUnit = periodUnit;
	}

	/**
	 * 利率
	 *
	 * @return
	 */
	public BigDecimal getInterest() {
		return interest;
	}

	/**
	 * 利率
	 * 
	 * @param interest
	 */
	public void setInterest(BigDecimal interest) {
		this.interest = interest;
	}

	@Override
	public boolean equals(Object except) {
		return ObjectUtil.equals(this.getClass(), this, except);
	}

	@Override
	public String toString(){
		return ObjectUtil.toString(this.getClass(), this);
	}
}
